/*
	跳转方法
*/
export default {
	/*在起始页面跳转到XXX.vue页面并传递参数
	 uni.navigateTo({
		 url: 'test?id=1&name=uniapp'
	 });
	 
	url:路径(所有的url都是路径)
	 
	保留当前页面，跳转到应用内的某个页面
   */
	goTo(url) {
	    uni.navigateTo({
	    	url: url
	    })
		console.log('点击跳转了goTo',url)
	},
	
	/*
		关闭当前页面，跳转到应用内的某个页面
	*/
	goAndClose(url) {
		
		uni.redirectTo({
			url: url
		})
		console.log('点击跳转了goAndClose:',url)
	},
	
	/*
		关闭所有页面，打开到应用内的某个页面
	*/
	goAndCloseAll(url) {
		uni.reLaunch({
			url: url
		})
	},
	
	/*
		跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面
	*/
	goTab(url) {
		uni.switchTab({
			url: url
		})
		console.log('执行了switchTab:',url);
	},
	
	/*
		关闭当前页面，返回上一页面或多级页面
		refresh:是否需要刷新上一个页面
	*/
    goBack() {
		// 除了 H5 平台，其它平台均存在的代码
		//#ifndef H5
			let page = this.getLastPage()
			let tabBarPages = ['pages/index/index']
			if(tabBarPages.includes(page)){
				console.log('执行了goTab');
				this.goTab(page)
				return
			}
			//如果当前的页面栈只有一个或没有 返回首页
			let allPages = getCurrentPages();
			if(allPages.length <= 1){
				this.goTab('/pages/index/index')
			}
			
			
			//如果返回当前的路径和上一个路径是一样的需要返回上两个页面,以此类推...
			// let allPages = getCurrentPages();
			// let backIndex = 1
			// for(let i=0; i<allPages.length-1;i++){
			// 	if(this.getLastRouter(i+1) == this.getLastRouter(i+2)){
			// 		backIndex++
			// 	}
			// }
			console.log('执行了goBack');
			uni.navigateBack({
				delta: 1, //返回上一级页面,可设置返回多级页面
				 //success: function() {
					 // if(refresh){
						// let pages = getCurrentPages(); // 当前页面
						// let beforePage = pages[pages.length - backIndex-1]; // 前一个页面
						// let currentPage = decodeURIComponent(beforePage.currentPage) //对路径进行解码
						// console.log('当前被刷新的页面',beforePage)
						//  beforePage.onLoad(); // 执行前一个页面的onLoad方法
					 // }
					//}
			});
			
		//#endif
		//解决h5刷新当前页面 返回不到上一级的问题
		// 仅出现在 H5 平台下的代码
		//#ifdef H5
			history.back(-1)
		//#endif
    },
	
	/*
		打印应用当前所有打开的页面
	*/
	currentAppPages() {
		const pages = getCurrentPages();
		pages.map((element)=>{
		  console.log("当前的页面栈:" + element.$page.fullPath);
		});
	},
	/*
		获取上一个页面地址
	*/
	getLastPage(){
		let arrAages = []
		const pages = getCurrentPages();
		pages.map((element)=>{
			arrAages.push(element.$page.fullPath)
		});
		return arrAages[arrAages.length-2]
		console.log('当前的页面栈',arrAages[arrAages.length-2]);
	},
	/*
		获取当前页面地址
	*/
	getCurrentPage(){
		let pages = getCurrentPages();
		if (pages.length >= 1) {
			let getCurrentPage = (pages[pages.length - 1]).$page.fullPath
			return getCurrentPage
		}
	},
	/*
		获取倒数第几个页面路由
	*/
	getLastRouter(index){
		let pages = getCurrentPages();
		if (pages.length >= 1) {
			let getCurrentPage = (pages[pages.length - index]).route
			return getCurrentPage
		}
	}
	
}